package com.简单插入排序;

public class Solution {
    
	static void chooseSort(int A[]) {
		int current = 0, i = 0, j;
		int preindex;
		for (i = 0; i < A.length ; i++) {
			current = A[i];
			preindex = i - 1;
//preindex就是一个前驱指针一直在找前面序列中比当前下表current大的数组并且将大的往后移动
			while (preindex >= 0 && current < A[preindex]) {
				A[preindex + 1] = A[preindex];
				preindex--;
			}//最后结束循环的时候preindex一定是在current应该在的位置之前一位或者，current应该在第一位preindex已经小于了0
			A[preindex + 1] = current;
		}

	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	public static void chooseSort1(int a[]) {
		int current,preindex;
		for(int i=0;i<a.length;i++) {
		    current=a[i];
			preindex = i-1;
			while(preindex>=0&&current<a[preindex]) {//一定要记住是大于等于0
				a[preindex+1]=a[preindex];
				preindex--;
			}
			a[preindex+1]=current;
		}
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	public static void insertsort(int a[]) {
		int current;
		int preindex;
		for(int i=0;i<a.length;i++) {
			current = a[i];
			preindex=i-1;
			while(preindex>=0&&current<a[preindex]) {
				a[preindex+1]=a[preindex];
				preindex--;
			}
			a[preindex+1] = current;
		}
	}

}
